There are many applications where detecting when a human user is looking directly at a device is desirable. One such application is self-service kiosks. The kiosk may be in a general attention attracting mode with flashy graphics until someone actually looks at the device. At this point, it may launch a targeted promotion because it has the user's attention.
Kiosk application can be activated by simple proximity sensors or by machine vision systems employing techniques such as background subtraction. However, these solutions only assure that a person is nearby, not that he is looking at the device.
Another application where detecting when a human user is looking directly at a device is desirable is operator alertness monitoring. At regular intervals, in order to operate the vehicle properly, the operator of a machine may be required to look at various task-relevant areas or directions. For instance, an alert driver of a car needs to look forward through the windshield and occasionally at the rearview mirror. If this does not occur, or only one point is being looked at, the driver may have become drowsy. The proper alternation of direct gaze between, e.g., the windshield and the rear-view mirror, may be determined by placing a gaze detector at each special point, e.g., the base of the windshield and in the rearview mirror. One could also put a signaling device, such as a blinking light, in conjunction with the detection camera to deliberately draw the user's attention to the spot if, for instance, the user is not looking in that direction frequently enough.
There are also a number of driver alertness systems. Many of these are based on blink frequency or eyelid closing rate. As such, they do not ensure that a driver is paying attention to the important aspects of his environment (e.g., he may be facing the passenger or text messaging rather than looking straight ahead).
There are other applications where determining the gaze angle of a human subject is important. Clearly, gaze angle of the user's head can be used to infer what the user is looking at as, in general, the user is looking in the direction of where his/her head is pointing. If the configuration of the user's external environment relative to the user is known, “interest” maps may be built if the user's gaze angle may be determined. For instance, as a customer roams down the aisle in a grocery store, a map of interest of the type of groceries that the user is interested in may be built based upon which groceries the user looks at. For instance, if the user gazes towards pasta on one side of the aisle while ignoring another ethnic food group on the other side of the aisle, it may be determined that the user has more interest in the pasta products.
There are some eye-tracking devices on the market. However, many of these eye-tracking devices must be worn by the user. Others are bulky or have a limited range of acceptable positions for the user's head.
There are also many systems that may find human faces in video images, but they are typically limited to nearly frontal views and make no effort to estimate head rotation or gaze direction. Systems that additionally determine head rotation often involve many template convolutions and hence are computationally costly.
Present methods for gaze angle such as a neural net classifier or a dense stereo reconstruction that looks for the nose are computationally complex.